"""
定义类
    第一件事：找对象（现实中的对象）
    第二件事：抽象属性和行为
        属性：姓名，年龄，性别，身高，体重，家庭住址     成员变量
            属性 是名词， 表示事务的特征， 可以定义在
                1. 类的内部， 方法的外部
                2. 定义在 魔法方法 __init__() 中
        行为: 吃饭，睡觉，学习....                   成员方法
            行为:是动词 ， 表示事务能够做什么， 在类中是方法
            和以前定义方法的方式一样，只不过参数列表中多了一个self
    第三：
        定义类:
            class 类名:
                def __init__(self):
                    属性

                def 吃饭(self):

                def 睡觉(self)

                def 学习(self)
如何使用类中成员
    1. 创建对象
        变量 = 类名()
    2. 通过 变量. 访问
        访问成员属性:   变量.成员属性名
        访问成员方法:   变量.成员方法名()
"""

class Student:
    """
     对象创建的时候，会自动调用这个函数,一般用于指的初始化
    """
    def __init__(self,name,age,gender,height,weight,address):
        print('对象创建了!')
        self.name = name
        self.age = age
        self.gender = gender
        self.height = height
        self.weight = weight
        self.address = address

    def eat(self):
        print(f'我叫{self.name},我正在吃饭')

    def sleep(self):
        print(f'我叫{self.name},我正在吃饭')

    def study(self):
        print(f'我叫{self.name},今年{self.age}岁了，我来自{self.address}，我在启点学习人工智能')


if __name__ == '__main__':
    s1 = Student('刘千琪',19,'女',179,110,'吉林长春')
    s2 = Student('王振宇',20,'男',170,170,'宁夏')

    print(s1.name) # 访问属性
    print(s1.age) # 访问属性

    print(s2.name)
    print(s2.age)

    s1.eat() # 调用方法
    s2.eat()

    s1.study()
    s2.study()
